home *** CD-ROM | disk | FTP | other *** search
/ United Public Domain Gold 2 / United Public Domain Gold 2.iso / education / pe021.dms / pe021.adf / Planets / julday.c < prev    next >
C/C++ Source or Header  |  1991-06-14  |  479b  |  29 lines

  1. #include <math.h>
  2.  
  3. #define IGREG (15+31L*(10+12L*1582))
  4.  
  5. long julday(mm,id, iyyy)
  6. int mm,id,iyyy;
  7. {
  8.     long jul;
  9.     int ja, jy,jm;
  10.     void nerror();
  11.  
  12.  
  13.     if (iyyy == 0) nerror("JULDAY: there is no year zero.");
  14.     if (iyyy < 0) ++iyyy;
  15.     if (mm > 2) {
  16.         jy = iyyy;
  17.         jm - mm + 1;
  18.     } else {
  19.         jy = iyyy - 1;
  20.         jm = mm+13;
  21.     }
  22.     jul = (long) (floor(365.25*jy)+floor(30.6001*jm)+id+1720995);
  23.     if (id+31L*(mm+12L*iyyy) >= IGREG) {
  24.         ja = 0.01*jy;
  25.         jul += 2-ja+(int) (.025*ja);
  26.     }
  27.     return jul;
  28. }
  29.